---
title: 缓存异常
---

缓存异常有4个方面，缓存中的数据和数据库中的不一致；缓存雪崩；缓存击穿和缓存穿透。

## 缓存和数据库的数据不一致是如何发生的？
这里的一致性包含了两种情况：
* 缓存中有数据，那么，缓存的数据值需要和数据库里的值相同；
* 缓存中本身没有数据，那么，数据库中的值必须是最新值。
不符合这两种情况的，就属于缓存和数据库的数据不一致问题了。不过，当缓存的读写模式不同时，缓存数据不一致的发生情况不一样，我们的应对方法也会有所不同，所以，我们先按照缓存读写模式，来分别了解不同模式下的缓存不一致情况。

根据是否接收写请求，我们可以把缓存分成读写缓存和只读缓存。

对于读写缓存来说，如果要对数据进行增删改，就需要在缓存中进行，同时还要根据采取的写回策略，决定是否同步写回到数据库中。
  vc
